﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//main133&134：文件打开和关闭及读取写入追加
int main133()
{
	//11.注意：文件类型指针，不需要用户操作；是根据光标操作的，不存在指针++这种操作；
	//6.第二个参数r，打开一个文本文件，文件必须存在，只允许读.；w，是写，但会覆盖原内容；a，是追加；
	FILE* fp = fopen("E:\\file\\FileRead.txt", "r");//r-->w-->a
	if (fp == NULL)
	{
		//4.打开失败原因：1>找不到文件；2>没有权限；3>程序打开文件超出上限，大小为65535字节；
		printf("1.文件打开失败！\n");
		return -1;
	}
	//2.文件操作；
	printf("3.文件打开成功！\n");

	//7.将字符A写入到文件a.txt中；
	//fputc('B', fp);//A-->B

	//8.从文件a.txt中读取一个字符，是第一个字符；
	//char ch = fgetc(fp);
	//printf("9.输出从a.txt读取到的字符ch：%c\n", ch);//A
	//ch = fgetc(fp);
	//printf("10.读取到第一个字符后，光标继续往后移动读取第二个，读取到的字符ch为：%c\n", ch);//B
	//printf("%c\n", fgetc(fp));//C

	//12.读取文件所有字符，光标读取到文件结尾，读取的字符!=结束标志EOF，即!=-1。EOF为-1，ASCII值里没有-1，但有0；
	char ch;
	while ((ch = fgetc(fp)) != EOF)
	{
		printf("13.输出文件a.txt中的所有字符ch：%c\n", ch);//A,B,C,D,E
	}


	//5.文件关闭；
	fclose(fp);

	system("pause");
	return EXIT_SUCCESS;
}
int main134(void)
{
	/*
	* 19.fopen的三个参数，r，w，a；
	* r，以只读形式打开文件，不会创建新文件，如果文件不存在，会报错；
	* w，以写的方式打开文件，文件不存在会创建新文件；如果文件里面有内容，会覆盖掉原始内容；
	* a，以追加方式打开文件，文件不存在会创建新文件，在文件内容末尾追加内容；
	*/
	//14.以写的形式打开文件；文件不存在，就自动创建；
	//FILE* fp = fopen("../../../file/FileWrite.txt", "w");

	//18.这次换成追加a，同样也是，文件不存在，就自动创建；
	FILE* fp = fopen("../../../file/FileAppend.txt", "a");

	//15.判断文件的可用性；
	if (fp == NULL)
	{
		return -1;
	}
	//16.写文件||读文件；
	char ch = 'a';
	fputc(ch, fp);
	ch = 'b';
	fputc(ch, fp);
	//17.关闭文件；
	fclose(fp);

	return 0;
}